import { Shape } from '../shape';

export class tmArc extends Shape {
  draw(): this {
    if (!this.canvas.ctx) return this;
    let ctx = this.canvas.ctx;
    const x = this.x;
    const y = this.y;
    const width = this.width;
    const height = this.height;
    const fillStyle = this.fillStyle;
    const strokeStyle = this.strokeStyle;
    const lineWidth = this.lineWidth;
    const r = this.r;
    const sAngle = this.sAngle * (Math.PI / 180) - Math.PI / 2;
    const eAngle = this.eAngle * (Math.PI / 180) - Math.PI / 2;

    ctx.beginPath();
    if (ctx.setFillStyle) {
      ctx.setFillStyle(fillStyle);
      ctx.setLineWidth(lineWidth);
      ctx.setStrokeStyle(strokeStyle);
      ctx.setLineJoin(this.lineJoin);
      ctx.setLineDash(this.lineDash, this.lineDashOffset);
    } else {
      ctx.fillStyle = fillStyle;
      ctx.lineWidth = lineWidth;
      ctx.strokeStyle = strokeStyle;
      ctx.lineJoin = this.lineJoin;
      ctx.setLineDash(this.lineDash, this.lineDashOffset);
    }

    ctx.arc(x, y, r, sAngle, eAngle);

    ctx.fill();
    ctx.stroke();

    return this;
  }
}
